CQLSH是用來執行CQL(Cassandry Query Language)的命令介面。除了缺少部分功能,與少部份的特殊指令,與常用的SQL語法幾乎相同。十分容易上手。
以下介紹一些常用的CQL
DESC:是DESCRIBE的簡寫。顧名思義用來顯示各層級的描述。如
DESC KEYSPACES;
DESC painting;
TRACING:用來協助開發人員分析CQL語法的執行流程。可以看到這句語法依據設定的Rplication Facotry,Consistency Level在各個node間傳遞訊息的時間,透過log來分析造成效能不彰的原因出處。以一個有3個node的cluster,RF=3,CL=LOCAL_QUORUM,開啟TRACING來測試。
可以看到當我們執行了SELECT語法後,從頭到尾處理這句QUERY的歷史紀錄,根據timestamp可以推測問題的發生點。
但是TRACING是會耗用額外效能的工具,故在使用上必須謹慎。
PAGING:其實就是分頁的功能,預設是開啟,避免一次返回大量的查詢結果。如果在執行上有特別需求,例如透過shell script執行語法,可以先將PAGING關閉或者將其數量調高。例如設定一次返回500筆row。PAGING 500
BATCH:把多個修改資料的statement(INSERT/UPDATE/DELETE)包在一起。可以減少client對server提出request的次數,降低與DB溝通的成本。
但是使用上必須注意,因為Batch的機制是要等到包含的所有的request都做完才會回傳成功。如果request包括多個partition,可能會造成失敗。
另外一次包含太多statement也會對效能產生不好的影響。